using System.Collections.Generic;

public class Logger : ILogger
{
    List<ILog> _logs = new List<ILog>();
    void AddLoggerInList()
    {
        _logs.Add(new FileLog());
//#if DEBUG
        _logs.Add(new DebugLog());
        _logs.Add(new AlertLog());
//#elif RELEASE
        _logs.Add(new SystemLog());
//#endif
    }

    public Logger()
    {
        AddLoggerInList();
    }

    public void Trace(string message)
    {
        foreach (var log in _logs)
            log.Trace(message);
    }

    public void Trace(string message, params object[] arg)
    {
        foreach (var log in _logs)
            log.Trace(message, arg);
    }

    public void Debug(string message)
    {
        foreach (var log in _logs)
            log.Debug(message);
    }

    public void Debug(string message, params object[] arg)
    {
        foreach (var log in _logs)
            log.Debug(message, arg);
    }

    public void Warn(string message)
    {
        foreach (var log in _logs)
            log.Warn(message);
    }

    public void Warn(string message, params object[] arg)
    {
        foreach (var log in _logs)
            log.Warn(message, arg);
    }

    public void Error(string message)
    {
        foreach (var log in _logs)
            log.Error(message);
    }

    public void Error(string message, params object[] arg)
    {
        foreach (var log in _logs)
            log.Error(message, arg);
    }
}
